home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
tex
/
tex31
/
inputs.lzh
/
lfonts.tex
< prev
next >
Wrap
Text File
|
1990-04-12
|
39KB
|
885 lines
% File LFONTS - Version of 21 November 1989
%
% This version of LFONTS.TEX is for the CMR fonts. It was converted
% from the AMR version by David Fuchs on 18 December 1985.
% And corrected on 11 Nov 1986 by Leslie Lamport.
% Last vestige of AMR fonts removed 3 Mar 89 by Leslie Lamport.
% This file needs to be customized for the fonts available at a particular
% site. There are three places where changes need to be made. They
% can be found by searching this file for the string FONT-CUSTOMIZING.
%
% FONT CONVENTIONS
%
% A TYPESTYLE COMMAND is something like \it that defines a type style.
% Each style command \xx is defined to be \protect\pxx, where
% \pxx is defined to choose the correct font for the current size.
% This allows style commands to appear in 'unsafe' arguments where
% protection is required.
%
% A SIZE COMMAND is something like \normalsize that defines a type size.
% It is defined by the document style. However, \normalsize is handled
% somewhat differently because it is called so often--e.g., on every
% page by the output routine. The document style defines \@normalsize
% instead of \normalsize.
%
% A ONE-SIZE typestyle is one that exists only in the \normalsize size.
%
% A FONT-SIZE COMMAND is one that defines \textfont, \scriptfont and
% \scriptscriptfont for the font families corresponding to preloaded fonts,
% as well as the typestyle commands for the preloaded fonts. Each
% font-size command has an associated @fontsize command, having the same
% name except for an '@' at the front. All font-size commands are defined
% in LFONTS. The naming convention is that a fifteenpt font has a font-size
% name \xvpt, and so on.
%
% Each size command \SIZE executes the command
% \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
% which does the following.
% 0. Executes \@nomath\SIZE to issue warning if in math mode.
% 1. \let \@currsize = \SIZE
% 2. Sets \strutbox to a strut of height .7 * BASELINESKIP and
% depth .3 * BASELINESKIP
%
% Note: Charles Karney observed that step 2 is useless, since the
% \FONTSIZE command executed in step 4 resets \strutbox using
% the actual baselineskip, which is \baselinestretch * BASELINESKIP.
% Some day, this step may get removed. (Note made 28 Feb 89)
%
% 3. Sets \baselineskip to \baselinestretch * BASELINESKIP
% and
% 4. Calls \FONTSIZE
% 5. Executes the \@FONTSIZE command.
% It should then define all the typestyle commands not defined by the font-size
% command, except for the one-size type styles. A typestyle command for which
% the corresponding font exists but is not preloaded is defined to expand to a
% \@getfont command. A typestyle whose font does not exist is defined to
% expand to a \@subfont command.
%
% A one-size typestyle whose font is not preloaded is defined to expand to
% a \@onesizefont command.
%
% \em is defined to be \it inside an unslanted style and \rm inside a
% slanted style. An \em command in a section title will produce a \pem
% command in the table of contents.
%
\def\em{\protect\pem{}}
\def\pem{\ifdim \fontdimen\@ne\font >\z@ \rm \else \it \fi}
\def\normalsize{\ifx\@currsize\normalsize \rm \else \@normalsize\fi}
% \load{SIZE}{STYLE} : Solves anomaly of loaded-on-demand font
% used for first time in math mode. Give this command outside math
% mode, before formula using it for first time.
\def\load#1#2{\let\@tempa\@currsize \let\@currsize\relax #1#2\@tempa}
% \newfont{\CMD}{FONT} defines \CMD to be the font FONT.
% It is equivalent to \font \CMD = FONT
% \symbol{NUM} == \char NUM
\def\newfont#1#2{\@ifdefinable #1{\font #1=#2\relax}}
\def\symbol#1{\char #1\relax}
% \@getfont \STYLE \FAM \@FONTSIZE{LOADING.INFO}
% \STYLE = style command
% \FAM = a control sequence defined by \newfam\FAM
% \@FONTSIZE = the @fontsize command for the current size.
% LOADING.INFO = information needed to load the font--e.g.,
% cmtti10 \magstep 2
% Does the following, where \FONTNAME denotes a new unique, untypeable
% font name:
% 1. Executes \font \FONTNAME = LOADING.INFO
% 2. Appends '\textfont FAM \FONTNAME \def\STYLE{\fam \FAM \FONTNAME}'
% to the definition of \@FONTSIZE.
% 3. Executes \@FONTSIZE \STYLE.
%
% \@nohyphens\STYLE\@FONTSIZE
% Used right after \@getfont to set \hyphenchar of the new font to -1,
% thereby prohibiting hyphenation. It is used with \tt fonts.
% (\@nohyphens was added on 12/18/85)
%
% \@subfont \STYLE \REPSTYLE
% \STYLE, \REPSTYLE = type style commands.
% Types warning message and defines uses \REPSTYLE.
%
% \@onesizefont \STYLE {LOADING.INFO}
% Defines \STYLE to be a typestyle that exists only for the \normalsize
% size. It produces the font specified by LOADING.INFO
%
% \@addfontinfo\@FONTSIZE{DEFS}
% Expands DEFS and adds to the definition of \@FONTSIZE. Items that should
% not be expanded should be protected with \@prtct---except no protection
% is needed for '\def\foo', only for the contents of the definition.
%
% \@nomath\CS : Types a warning '\CS used in math mode' if encountered
% in math mode.
% Remove \outer from definition of \newfam
\def\newfam{\alloc@8\fam\chardef\sixt@@n}
\def\@setsize#1#2#3#4{\@nomath#1\let\@currsize#1\baselineskip
#2\setbox\strutbox\hbox{\vrule height.7\baselineskip
depth.3\baselineskip width\z@}\baselineskip\baselinestretch\baselineskip
\normalbaselineskip\baselineskip#3#4}
\newif\if@bold
\let\@prtct=\relax
\def\@addfontinfo#1#2{{\def\@prtct{\noexpand\@prtct\noexpand}\def\def{\noexpand
\def\noexpand}\xdef#1{#1#2}}}
\def\@getfont#1#2#3#4{\@ifundefined{\string #1\string #3}{\global\expandafter
\font \csname \string #1\string #3\endcsname #4\relax
\@addfontinfo#3{\textfont #2\csname \string #1\string #3\endcsname
\scriptfont #2\csname \string #1\string #3\endcsname
\scriptscriptfont #2\csname \string #1\string #3\endcsname
\def#1{\fam #2\csname\string #1\string #3\endcsname}}}{}#3#1}
\def\@nohyphens#1#2{\global\expandafter \hyphenchar\csname
\string #1\string #2\endcsname \m@ne}
\def\@subfont#1#2{\@warning{No \string#1\space typeface in
this size, using \string#2}#2}
\def\@onesizefont#1#2{\expandafter\newfam\csname fm\string#1\endcsname
\global\expandafter\font\csname ft\string#1\endcsname #2\relax
\gdef#1{\ifx \@currsize\normalsize \@ftfam#1\else
\@warning{Typeface \string#1\space available only in
\string\normalsize, using \string\rm}\gdef #1{\ifx \@currsize\normalsize
\textfont\@fontfam#1 \scriptfont\@fontfam#1 \scriptscriptfont
\@fontfam#1\@ftfam#1\else \rm\fi}#1\fi}#1}
\def\@ftfam#1{\fam\csname fm\string#1\endcsname\csname ft\string#1\endcsname}
\def\@nomath#1{\ifmmode \@warning{\string#1\space in math mode.}\fi}
\def\@nomathbold{\ifmmode \@warning{\string\mathbold\space in math mode.}\fi}
% The following definitions save token space. E.g., using \@height
% instead of height saves 5 tokens at the cost in time of one macro
% expansion.
\def\@height{height}
\def\@depth{depth}
\def\@width{width}
\def\@magscale#1{ scaled \magstep #1}
\def\@halfmag{ scaled \magstephalf}
\def\@ptscale#1{ scaled #100}
%% FONT-CUSTOMIZING: The following \font commands define the
%% preloaded LaTeX fonts. Font names should be changed to cause
%% different fonts to be loaded in place of these particular AMR fonts.
%% \font commands should be added or deleted to change which fonts
%% are preloaded.
% five point
\font\fivrm = cmr5 % roman
\font\fivmi = cmmi5 % math italic
\skewchar\fivmi ='177 % for placement of accents
%\font\fivmib = cmmib10 \@ptscale5 % bold math italic
\font\fivsy = cmsy5 % math symbols
\skewchar\fivsy ='60 % for placement of math accents
%\font\fivsyb = cmbsy10 \@ptscale5 % bold math symbols
%\font\fivit = cmti7 scaled 714 % text italic
%\font\fivsl = cmsl10 \@ptscale5 % slanted
%\font\fivbf = cmbx7 scaled 714 % extended bold
%\font\fivbfs = cmbxsl10\@ptscale5 % extended bold slanted
%\font\fivtt = cmtt10 \@ptscale5 % typewriter
%\font\fivtti = cmitt10 \@ptscale5 % ital